메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

Enterprise Flex RIA 해부(8) : 개발 주기

한빛미디어

|

2008-08-20

|

by HANBIT

9,501

제공 : 한빛 네트워크
저자 : Tony Hillerson
역자 : 이호민
원문 : Anatomy of an Enterprise Flex RIA Part 8: Development Cycle

지난 기사에서 우리는 Maven과 Ant를 사용해 Flex를 빌드하는 과정을 살펴 보았다. 이제 우리는 개발 수명주기(development lifecycle)까지 살펴보도록 하겠다. 그리고, 다음 번 과정의 준비로 지속성 레이어(persistence layer)를 위한 의존성에 대해 살펴볼 것이다.

이제 우리는 우리에게 도움을 주기 위한 태스크들을 가지고 있고 Maven의 빌드 과정에서 몇 부분을 가로 채(hook) 봤다. 이제 변경 사항을 만들고 이 변경 사항들을 우리의 개발 환경에서 웹브라우져를 통해 확인하는 방법에 대해 이야기 해 보겠다.

이 관점에서 살펴보자(표 4를 보라). 어떤 리소스 종류가 수정되었다면 그 변경된 내용을 보기 위해 어떻게 해야 할까? 표의 “빌드” 행은 프로젝트가 컴파일하고 빌드하려면, 다시 말해, 변경 내용들을 “고정”시키기 위해 어떤 명령어를 사용해야 하는지를 보여준다.

The “배포” 행은 우리가 변경된 내용을 볼 수 있도록 프로젝트의 변경 사항을 로컬 개발 환경으로 밀어 넣기 위한 명령어들을 보여준다.

변경종류 변경된 리소스 빌드 배포
데이터베이스 변경 bookie-data/src/data/schema.xml bookie-data 디렉터리에서 `ant load-schema` 필요 없음
엔티티 또는 세션 빈 변경 bookie-data 안의 아무 Java 파일 bookie-data 디렉터리에서 `mvn package` 프로젝트의 루트 디렉터리에서 `ant dev-deploy`
[표 4] MAVEN BUILD RESOURCE CHANGES

예로, [그림 9] 에서 bookie-data 프로젝트에서 load-schema 명령을 실행했을 때의 출력을 볼 수 있다.


[그림 9] bookie-data 프로젝트의 load-schema 명령의 출력

지속성 레이어 빌드: Maven 설정

우리는 이미 많은 POM 파일들과 이들과 Ant와의 상관관계를 살펴 보았다. 이제 남은 것은 의존성을 살펴보는 것이다:
    
        
           microcontainer.jboss.ejb3
           hibernate-allrc9
           provided
        
    ...
    
여기에 전체 의존성을 모두 나열한 것은 아니지만 짚고 넘어가야 할 핵심들이 있다. 모든 프로젝트는 “세가지 중요한” 태그들을 동일하게 사용함을 알아두자. groupId, artifactId, version이 그것이다. Maven은 이 정보만으로 충분히 의존성을 구별해 낼 수 있다. 이 세 태그 밑의 태그는 Maven에게 언제 프로젝트가 의존성을 필요로 하는지 알려준다. [표 5]에서 Maven’s 웹 사이트로부터 가져온 scope의 전체 설명을 나열하였다.

SCOPE 설명
Compile 기본 scope, 아무것도 지정하지 않았다면 이를 사용한다. 컴파일 의존성을 모든 classpath들에서 사용할 수 있다.
Provided Compile과 거의 동일함. 하지만 이를 제공하는 JDK나 컨테이너가 필요하다. 컴파일 classpath에서만 사용 가능하며 전이(transitive)되지 않는다.
Runtime 이 scope는 의존성이 컴파일에는 필요 없지만 실행 시에는 필요함을 의미함. 런타임과 테스트 classpath에는 있지만 컴파일 classpath에는 없다.
Test 이 scope는 일반적인 애플리케이션의 사용시에는 필요하지 않음을 의미함. 이는 테스트 컴파일과 절(phase)들을 실행 할 때만 사용 가능하다.
System 이 scope는 Provided와 거의 비슷하지만, 여러분이 이를 포함하는 JAR를 명시적으로 제공해야 한다는 점이 다르다. 그 JAR파일은 항상 사용가능하며 저장소를 검색하지 않는다.
[표 5] MAVEN의 SCOPE

src 디렉터리 안에 프로젝트의 메인 소스를 위한 main 디렉터리가 있고, 같은 레벨에 테스트 코드를 위한 test 디렉터리가 있다. 코드들은 main과 test 디렉터리에 위치하게 되면 언어의 종류에 따라 조직화 된다. 이 경우 데이터 프로젝트 디렉터리에는 java 디렉터리가 자바 코드들 담고 있으며 웹 프로젝트에는 java와 flex 디렉터리가 각 언어들을 담고 있다.

또한 여러분은 엄격한 요구가 없다면 의존성을 true로 마크 할 수 있다. 예를 들면, 일부 로깅 패키지들의 경우 존재하면 의존성을 만들겠지만, 존재하지 않는다면 의존성이 필요 없게 된다. bookie-data 프로젝트의 루트 디렉터리 명령창에서 `mvn package` 명령어를 입력하여 bookie-data의 지속성 유닛 JAR를 빌드할 수 있음을 잊지 마라.

다음 번에서는 우리의 예제 애플리케이션의 지속성 레이어를 만들기 위한 코드들(자바와 엑션스크립트 코드)을 살펴볼 것이다. 여기를 클릭하면 전체 시리즈(영문)를 볼 수 있다.
TAG :
댓글 입력
자료실

최근 본 책0